Skip to content

build(deps): bump kube to 4.2, k8s-openapi to 0.28, and k8s-controller to 0.14 - #39355

Merged
antiguru merged 1 commit into
MaterializeInc:mainfrom
antiguru:deps-kube-4
Oct 14, 2026
Merged

antiguru merged 1 commit into
MaterializeInc:mainfrom
antiguru:deps-kube-4

Conversation

@antiguru

@antiguru antiguru commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

The workspace compiles unchanged against kube 4.2 and k8s-openapi 0.28, and it keeps the v1_34 API feature. k8s-controller moves to 0.14, its first release on kube 4.

kube 4 builds derived CRDs as typed CustomResourceDefinitions, which omit the empty spec.names.categories list. The exported VpcEndpoint CRD changes by that field. Kubernetes treats an absent list and an empty one the same.

Other kube 4 behavior changes that reach us:

  • Read timeout: kube dropped its global default read timeout. mz_orchestrator_kubernetes::util::create_client sets read_timeout and connect_timeout explicitly, so our clients keep their timeouts.
  • Retries: non-watch requests now retry on 429, 503 and 504 by default.
  • Tracing: the client's per-request tracing layer is opt-in behind hyper-util-tracing, which this PR does not enable.
  • smallvec: kube-client 4.2 depends on serde-saphyr 0.0.29, which requires smallvec < 1.16. The lock moves smallvec from 1.16.2 back to 1.15.2, which still satisfies the workspace requirement of 1.15.1.

kube-client 4 replaces serde_yaml with serde-saphyr. RUSTSEC-2024-0449 (unsafe-libyaml) stays ignored because mz-debug and mz-metrics-catalog use serde_yaml directly, and the deny.toml comment now says so.

Posted by Claude Code.

🤖 Generated with Claude Code

…r to 0.14

kube 4 builds CRDs as typed `CustomResourceDefinition`s, which omit the
empty `spec.names.categories` list, so the exported VpcEndpoint CRD
changes accordingly.

k8s-controller exposes kube types, and 0.14 is its first release on kube 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@antiguru antiguru changed the title build(deps): bump kube to 4.2, k8s-openapi to 0.28, and k8s-controller build(deps): bump kube to 4.2, k8s-openapi to 0.28, and k8s-controller to 0.14 Oct 14, 2026
@antiguru
antiguru marked this pull request as ready for review October 14, 2026 10:18
@antiguru
antiguru requested a review from a team as a code owner October 14, 2026 10:18
@alex-hunt-materialize
alex-hunt-materialize dismissed their stale review October 14, 2026 10:37

Waiting on orchestratord tests.

@antiguru
antiguru merged commit ae4f9b7 into MaterializeInc:main Oct 14, 2026
110 checks passed
@antiguru
antiguru deleted the deps-kube-4 branch October 14, 2026 11:40
@antiguru

Copy link
Copy Markdown
Member Author

Thanks for the reviews!

antiguru added a commit that referenced this pull request Oct 15, 2026
`serde_yaml` is deprecated, and it depends on the unmaintained
`unsafe-libyaml` (RUSTSEC-2024-0449). `mz-debug` and
`mz-metrics-catalog` only write YAML, so this PR moves both to
`serde-saphyr`, built with only its `serialize` feature. `kube-client`
already depends on `serde-saphyr` since #39355. With `serde_yaml` gone,
`unsafe-libyaml` leaves the dependency tree, and its advisory ignore in
`deny.toml` goes with it.

The PR also regenerates `doc/user/data/metrics.yml`. Its content is
unchanged: all 799 entries parse to the same data as before. The
formatting differs in two ways. Quoted names use double quotes instead
of single quotes, and long help strings become folded block scalars.
YAML that `mz-debug` writes for Kubernetes objects changes in the same
ways.

It also drops the ignores for RUSTSEC-2026-0173 and RUSTSEC-2026-0253,
which `cargo deny` no longer detects on main.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants